Modem computing systems may provide some centralized functions that are accessible by various applications. Often, though not always, such centralized functions are associated with an operating system. One function that may be centralized is display of information, e.g., information of a particular type, to a user.
For example, consider the help service that is incorporated into the MICROSOFT WINDOWS® operating system. As computers and applications become more sophisticated, it is desirable to provide users with information to educate themselves on the features of their computing environment and applications. A help service may provide users with information on an enormous range of topics. It may provide, for example, information and instructions for proper use of an operating system. Some of the topics may be helpful to users in a multitude of scenarios, so the help service may also comprise functions for selectively presenting topics to maximize value for users.
As a service such as the help service becomes more sophisticated, it is desirable to access it from applications. An application may draw upon a help service for explanation of an operating system feature, for example. In another example, the application creator may wish to specify his own help content, but draw upon other helpful features of a centralized help service. In such situations, the application creator may prefer to direct a user, through the application's user interface, to a centralized operating system help service. This may be easier than designing a new help service. This would allow for more efficient application design, because application creators could reuse existing centralized functions. Thus, the help service is an example of a function for displaying information that could be centralized for the benefit of the applications that may run on a computer system.
Content that is managed and displayed in many modem computing settings may be markup language content. Extensible Markup Language (XML), Hyper-Text Markup Language (HTML), and Microsoft Assistance Markup Language (MAML) are all examples of markup languages. Markup languages can be displayed by processes that recognize the various elements within a particular markup language file, and display a corresponding element, with any specified properties in the markup language file.
Markup language files may be converted from one format to another using a transform. As one might imagine, transforms involve code that identifies every element in a first markup language file, and then re-identifies and reconfigures those elements into a format that is recognizable to a different schema or application. Such code must be properly written according to the need and the confines of the transformation language. To draw from XML for an example, transforms of one XML document into another XML document, or some other data format, are generally performed using Extensible Stylesheet Language Transformations (“XSLT”).
Thus, in a system such as the MICROSOFT® help service, described above, we have markup and/or other content that can be drawn upon for visual display by a computer system. Some of the markup content may be centralized, and various processes for accessing and rendering the content may also be centralized, such that it is accessible from a variety of applications with access to the computer system. It would be desirable, in this setting, to support customization of the appearance of the content. Application creators may want content to appear consistent with the other aspects of their application. They may also want to insert features and additional content that may not be present or available from the centralized system.